package com.woniu.aggregation.api;

import com.woniu.aggregation.dto.HisOrderFormDto;
import com.woniu.aggregation.dto.InpatientDto;
import com.woniu.aggregation.dto.PageDTO;
import com.woniu.aggregation.param.*;
import com.woniu.util.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

@FeignClient(
        value = "inpatient",
        contextId = "inpatient-1",
        path = "inpatient-1"
)
@Api(tags = "住院医生接口")
public interface ResidentDoctorQueryApi {
    @ApiOperation("查询病人信息")
    @GetMapping("queryPatient")
    Result queryPatientInformation(@RequestBody PatientMessageParam patientMessageParam);

    //生成一个病历
//    @PostMapping("/addCase")
//    @ApiOperation("生成一个病历")
//    Result<InpatientDto> generateMedicalRecords(@RequestBody AddInpatientParam addInpatientParam);

    //根据患者ID修改病历
//    @PutMapping("modifyCase")
//    @ApiOperation("根据患者ID修改病历")
//    Result<InpatientDto> modifyMedicalRecords(@RequestBody ModifyInpatientParam modifyInpatientParam);

    //完结病历将病历状态修改
//    @ApiOperation("完结病历将病历状态修改")
//    @PutMapping("modifyCaseStats")
//    Result<InpatientDto> modifyMedicalRecordStatus(@RequestBody ModifyStatusInpatientParam modifyStatusInpatientParam);

    //根据病历ID集合删除ID
//    @ApiOperation("根据病历ID集合删除ID")
//    @DeleteMapping("deleteCase")
//    Result<Boolean> deleteMedicalRecord(@RequestParam("ids") ArrayList<Integer> ids);

    //根据条件查询病历
//    @GetMapping("getCase")
//    @ApiOperation("根据条件查询病历")
//    Result<PageDTO<InpatientDto>> queryMedicalRecords(@RequestBody ListInpatientParam listInpatientParam);

    @PostMapping("adddOctorsorder")
    @ApiOperation("新增医嘱")
    Result newlyAddedDoctorsOrder(@RequestBody AddDoctorsOrderParam addDoctorsOrderParam);

    @GetMapping("getByPatientid")
    @ApiOperation("根据患者ID查询医嘱表")
    Result patientIdQueryOrder(@RequestBody PatientIdQueryOrderParam patientIdQueryOrderParam);

    @PutMapping("modifyOrder")
    @ApiOperation("修改医嘱表")
    Result modifyOrder(@RequestBody ModifyOrderParam modifyOrderParam);

    @ApiOperation("住院医生开检查接口")
    @PostMapping("newChecklist")
    Result newChecklist();

}
